//HJ108 求最小公倍数
import java.io.*;
import java.util.*;
//辗转相除法（欧几里得算法）
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        String[] arr=reader.readLine().split(" ");
        int a=Integer.parseInt(arr[0]);
        int b=Integer.parseInt(arr[1]);
        long sum=a*b;

        int x=a;
        while(x!=0){
            a=b;
            b=x;
            x=a%b;
        }
        System.out.println(sum/b);
    }
}




//NC95 数组中的最长连续子序列
class Solution {

    //需要注意的是：连续序列要求相邻数字之差必须是 1。
    public int MLS (int[] arr) {
        int maxlen = 1;
        int len = 1;
        Arrays.sort(arr);
        for (int i = 1; i < arr.length; i++) {
            //跳过相同的数
            if (arr[i] == arr[i - 1]) {
                continue;
            } else if (arr[i] - arr[i - 1] == 1) {
                len++;
            } else {
                maxlen = Math.max(maxlen, len);
                len = 1;
            }
        }
        //防止倒数第一个和倒数第二个数相同，导致continue了没有更新maxlen
        return Math.max(maxlen, len);
    }
}
//另外一种解法:
 class Solution1 {
    public int MLS(int[] arr) {
        if (arr == null || arr.length == 0) return 0;

        HashSet<Integer> set = new HashSet<>();
        for (int num : arr) {
            set.add(num); // 把所有数加入 HashSet
        }

        int maxLen = 0;

        for (int num : arr) {
            // 只从序列的起点开始检查，避免重复计算
            if (!set.contains(num - 1)) {
                int length = 1;
                int current = num;

                while (set.contains(current + 1)) {
                    length++;
                    current++;
                }

                maxLen = Math.max(maxLen, length);
            }
        }

        return maxLen;
    }
}



// DP39 字母收集
class Main1 {
    public static void main(String[] args) throws IOException{
        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        String[] arr=reader.readLine().split(" ");
        int n=Integer.parseInt(arr[0]);
        int m=Integer.parseInt(arr[1]);
        int[][] tmp=new int[n+2][m+2];
        for(int i=1;i<=n;i++){
            String s=reader.readLine();
            for(int j=1;j<=m;j++){
                char c=s.charAt(j-1);
                if(c=='l'){
                    tmp[i][j]+=4;
                }else if(c=='o'){
                    tmp[i][j]+=3;
                }else if(c=='v'){
                    tmp[i][j]+=2;
                }else if(c=='e'){
                    tmp[i][j]+=1;
                }else{
                    tmp[i][j]+=0;
                }
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                tmp[i][j]+=Math.max(tmp[i-1][j],tmp[i][j-1]);
            }
        }
        System.out.print(tmp[n][m]);
    }
}

